home *** CD-ROM | disk | FTP | other *** search
/ Aminet 5 / Aminet 5 - March 1995.iso / Aminet / util / rexx / xdmd1.lha / RenumberOutline.xdme < prev    next >
Text File  |  1993-08-28  |  2KB  |  83 lines

  1. /* RenumberOutline.xdme © 1993 Fergus Duniho */
  2. /* Renumbers Blocked Portion of an Outline */
  3.  
  4. 'goto end if b downadd'
  5. bsave 'ram:text'
  6. 'title `Renumbering -\Please Wait!'
  7. Call Open 'Old','RAM:TEXT','R'
  8. Call Open 'New','RAM:TEXT2','W'
  9.  
  10. Do X = 1 to 8
  11.     H.X = ''
  12. End
  13.  
  14. LINE = Readln('Old')
  15. Call Writeln 'New',LINE
  16. LN = 0
  17. POSITION = Verify(LINE,'.)',m)
  18. LV = (POSITION - 9)%4 + 1
  19. H.LV = Word(LINE,1)
  20.  
  21. Do Forever
  22.     Do Until LINE = ''
  23.         LINE = Readln('Old')
  24.         Call Writeln 'New',LINE
  25.         LN = LN + 1
  26.     End
  27.  
  28.     LINE = Readln('Old')
  29.     If EOF('Old') Then Leave
  30.     LN = LN + 1
  31.  
  32.     PS = Verify(LINE,'.)',m)
  33.     If PS = 0 Then Leave
  34.  
  35.     H.LV = Left(H.LV,Length(H.LV)-1)
  36.     LEVEL = LV
  37.  
  38.     LV = (PS - 9)%4 + 1
  39.     HD = Word(LINE,1)
  40.  
  41.     If LEVEL >= LV Then
  42.         If H.LV ~= '' Then Do
  43.             Select
  44.                 When LV = 1 Then H.LV = UPPER(Roman(Arabic(H.LV) + 1))
  45.                 When LV = 2 | LV = 5 | LV = 8 Then H.LV = d2c(c2d(H.LV) + 1)
  46.                 When LV = 3 | LV = 6 Then H.LV = H.LV + 1
  47.                 When LV = 4 | LV = 7 Then H.LV = (Roman(Arabic(H.LV) + 1))
  48.                 Otherwise NOP
  49.             End
  50.             H.LV = H.LV || Right(HD,1)
  51.         End
  52.         Else H.LV = HD
  53.     Else If LEVEL = LV - 1 Then Do
  54.         Select
  55.             When LEVEL = 1 Then H.LV = 'A.'
  56.             When LEVEL = 2 Then H.LV = '1.'
  57.             When LEVEL = 3 Then H.LV = 'i.'
  58.             When LEVEL = 4 Then H.LV = 'a.'
  59.             When LEVEL = 5 Then H.LV = '1)'
  60.             When LEVEL = 6 Then H.LV = 'i)'
  61.             When LEVEL = 7 Then H.LV = 'a)'
  62.             Otherwise NOP
  63.         End
  64.     End
  65.     Else Do
  66.         goto block
  67.         Com = 'goto +'LN
  68.         Com
  69.         firstnb
  70.         'set RS `Error !!!'
  71.         Exit
  72.     End
  73.  
  74.     LINE = Copies(' ',Ps - (Length(H.LV))) || H.LV " " Subword(LINE, 2)
  75.     Call Writeln 'New',LINE
  76. End
  77.  
  78. Call Close ('Old')
  79. Call Close ('New')
  80. bdelete
  81. 'set RS `Renumbering Successful'
  82. insfile 'ram:text2'
  83.